package cn.tedu.jsd2205the.back.end.project.util;

import org.springframework.web.multipart.MultipartFile;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * String工具类
 */
public class StringUtils {
    /**
     * 判断字符串是否为""或null
     * 符串为""或null返回true，否则返回false
     *
     * @param str
     * @return boolean
     */
    public static boolean isEmpty(String str) {
        return str == null || str.isEmpty();
    }

    /**
     * 判断字符串是否为""或null
     * 符串为""或null返回false，否则返回true
     *
     * @param str
     * @return boolean
     */
    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }

    /**
     * 检查字符串是否包含空白字符
     * 如果不包含空格返回true，否则返回false
     *
     * @param str 需要比较的字符串
     * @return boolean
     */
    public boolean check(String str) {
        // 去除空白字符后字符串的长度
        int realLength = str.replaceAll("\\s", "").length();
        int originalLength = str.length(); // 字符串原来的长度

        return realLength == originalLength;
    }

    /**
     * 根据当前时间生成UUID
     *
     * @return
     */
    public static String uuid() {
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");

        return format.format(date);
    }

    /**
     * 获取文件类型
     *
     * @param fileName 文件名
     */
    public static String getFileType(String fileName) {
        int index = fileName.lastIndexOf('.');

        return fileName.substring(index);
    }

    /**
     * 获取文件名
     * @param file
     * @return
     */
    public static String getFileName(MultipartFile file) {
        // 得到上传文件的原始文件名
        String originalFilename = file.getOriginalFilename();
        // 获取文件类型
        String fileType = getFileType(originalFilename);

        // 返回uuid.文件类型，例如：20220618131456.jpg
        return uuid() + fileType;
    }

}